package com.shujia

object Demo8Class {

  def main(args: Array[String]): Unit = {

    /**
      * 所有类的超类都是Object
      *
      */

    val stu: Stu = new Stu()
    println(stu)

    stu.print()

    stu.more()


    //获取类对象

    //通过类的对象获取类对象
    val clazz = stu.getClass

    //通过类名获取类对象
    val c: Class[Person] = classOf[Person]

    val unit: Class[_] = Class.forName("com.shujia.Person")

    println(c == unit)


  }

}


class Person() {
  println("Person默认构造函数")


  def print(): Unit = {
    println("print")
  }

}

//继承和实现使用同一个关键字
class Stu() extends Person with More {
  println("stu的默认构造函数")

  override def print(): Unit = {
    println("重写父类方法")
  }

  //使用接口方法
  override def more(): Unit = {
    println("more")
  }
}

///接口
trait More {
  //抽象方法
  def more(): Unit
}
